// SVGUtils.h
#ifndef SVGUTILS_H
#define SVGUTILS_H

#include <QString>
#include <QDomDocument>
#include <vector>
#include <memory>
#include "IShape.h"

class SVGUtils {
public:
    static bool saveToFile(const QString& filename, const std::vector<std::shared_ptr<IShape>>& shapes);
    static std::vector<std::shared_ptr<IShape>> loadFromFile(const QString& filename);

private:
    static void addShapeToDocument(QDomDocument& doc, QDomElement& root, const std::shared_ptr<IShape>& shape);
    static std::shared_ptr<IShape> createShapeFromElement(const QDomElement& element);
    static bool isParallelogram(const QStringList& points);
};

#endif // SVGUTILS_H